#include "widget.h"
#include "ui_widget.h"

#include <QDebug>
Widget::Widget(QWidget *parent)
    : QWidget(parent)
    , ui(new Ui::Widget)
{
    ui->setupUi(this);

    //QProgressBar_1
    /**************************
     * 在Qt中，有一个专门的头文件，这个头文件中报案了Qt中所有类的"前置声明"
     * 这个头文件一般不会直接接触到，但是包含其他的Qt头文件，都会间接的包含到这个头文件
     * 但是如果在非直接包含的文件直接使用，仍需要显式包含相应的头文件
     * 这样做的原因：
     * 对于一个大规模的项目，编译速度非常慢，且与#include头文件有直接关系
     * 因此尽可能减少include头文件的个数，可以有效减少编译时间
     * Qt中使用class 前置声明的方式，来尽量减少头文件的包含，Qt中每个头文件包含其他头文件数量都能相应降低
     * 但在实际开发中，该包含还是包含
     * 与其通过特殊技巧来缩短编译时间，不如引入更好的硬件资源来更高效的编译
     *********************************/
    timer = new QTimer(this);
    connect(timer, &QTimer::timeout, this, &Widget::handle);
    timer->start(100);

    //QCalendarWidget


}

Widget::~Widget()
{
    delete ui;
}

void Widget::handle()
{
    //获取到进度条的当前数值
    int value = ui->progressBar->value();
    if(value >= 100){
        timer->stop();
        return;
    }
    ui->progressBar->setValue(value+1);
}


void Widget::on_calendarWidget_selectionChanged()
{
    QDate date = ui->calendarWidget->selectedDate();
    qDebug() << date;

    ui->label->setText(date.toString());
}
